package com.sc.nft.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.EcologyCastExchangeConf;
import com.sc.nft.entity.UserInfo;
import com.sc.nft.entity.vo.ecology.AdminExchangeCastUpperLimitConfVO;
import com.sc.nft.entity.vo.ecology.ExchangeCastUpperLimitConfVO;

import java.util.List;

/**
 * 生态-铸造上限兑换配置表服务接口
 *
 * @author Sun
 * @description 由 Mybatisplus Code Generator 创建
 * @since 2024-06-07 09:03:55
 */
public interface EcologyCastExchangeConfService {

    /**
     * 后台添加铸造兑换配置
     *
     * @param ecologyCastExchangeConf
     */
    void addExchangeCastUpperLimit(EcologyCastExchangeConf ecologyCastExchangeConf);

    /**
     * 删除铸造兑换配置
     *
     * @param id
     */
    void dealExchangeCastUpperLimit(Long id);

    /**
     * 查询铸造兑换配置列表
     *
     * @param ecologyCastId
     * @return
     */
    List<AdminExchangeCastUpperLimitConfVO> getExchangeCastUpperLimitConf(Long ecologyCastId);

    /**
     * 更新状态
     *
     * @param id
     * @param status
     */
    void updateStatus(Long id, Boolean status);

    /**
     * 获取生态铸造上限兑换配置
     *
     * @param ecologyCastId
     * @return
     */
    Boolean getIsExistByEcologyCastId(Long ecologyCastId);

    /**
     * 获取生态铸造上限兑换配置
     *
     * @param ecologyCastId
     * @return
     */
    List<ExchangeCastUpperLimitConfVO> getExchangeCastUpperLimitConfList(UserInfo userInfo, Long ecologyCastId);

    /**
     * 用户兑换铸造上限
     *
     * @param id
     * @param count
     * @param userInfo
     */
    void exchange(Long id, Integer count, UserInfo userInfo);

    /**
     * 初始化配置表
     */
    void initEcologyWayConf();

}
